“Cloud computing” can be defined as Internet-based computing in which shared resources, software and information are provided to client or user computers or other devices on-demand from a pool of resources that are communicatively available via the Internet. Cloud computing is envisioned as a way to democratize access to resources and services, letting users efficiently purchase as many resources as they need and/or can afford. A significant component of cloud computing implementations is the “data center.” A data center is a facility used to house computer systems and associated components, such as telecommunications and storage systems. It generally includes redundant or backup power supplies, redundant data communications connections, environmental controls (e.g., air conditioning, fire suppression) and security devices. Thus, a data center provides compute, network and storage functionality supported by a variety of physical elements or hardware devices including, but not limited to, compute, network and storage devices that are assembled, connected and configured to provide the services that a given user might want via the “cloud.”
As the demand for cloud services has continued to grow, the notion of a “virtual data center” has emerged. With a virtual data center, rather than dedicating a collection of specific hardware devices to a particular end user, the end user receives services from, perhaps, a dynamically changing collection of hardware devices, or even a portion or parts of given hardware devices that are shared, unknowingly, by another end user. Because of, possible frequent, instantiations and de-instantiations of services on behalf of end users within a data center, precisely which set of hardware devices support a given end user at any given moment might not be readily known.